$(document).ready(function(){
    
    
    $('#panelcitasis').panel({
        collapsible:false
    });

    $("#btnconsultarbt").button({
        icons: {
            primary: 'ui-icon-search'
        },
        text: false
    });

   
                    
    $("#btnbloqueartn").button({
        icons: {
            primary: 'ui-icon-contact'
        },
        text: true
    }).click(agendaMedico);
     
     
    $("#ayudaBtn").button({
        icons: {
            primary: 'ui-icon-help'
        },
        text: false
    });
         
    $("#id_sede").load("/salus/AdministrarServlet", {
        op:"-43"
    });
    
    $("#id_especialidad").load("/salus/AdministrarServlet", {
        op:"-6"});
    
    
    
    $("#id_especialidad").change(function(){
        $("#id_medico").load("/salus/AdministrarServlet", {
            id_especialidad:$("#id_especialidad").val(),
            op:"-17"           
        });
    });


   /* $("#id_sede").load("/salus/AdministrarServlet", {
        op:"-43"
    }).change();*/


   /* $("#id_especialidad").load("/salus/AdministrarServlet", {
        op:"-6"
    }).change(mostrar_medicos);*/
    
    
    /* $("#id_especialidad").change(function(){
         
         
      $("#id_medico").load("/salus/AdministrarServlet", {
        op:"-17",
        id_especialidad:$("#id_especialidad").val()}).change(reconstruirAgenda);
    })
         
         
     $("#idcps").load("/salus/AdministrarServlet", {
            entidad:$("#identidad").val(),
            op:"-23"           
        });
    });*/




    var startDateTextBox_ah_ini = $("#fecha_i");
    var endDateTextBox_ah_fin =   $("#fecha_f");  

$("#fecha_i").datetimepicker({
        changeYear: true,
        changeMonth: true,
        numberOfMonths: 1,
        dateFormat: 'dd/mm/yy',
        showButtonPanel: true,
        addSliderAccess: true,
        sliderAccessArgs: {
            touchonly: false
        },
        
        onClose:function(dateText, inst) {
            if (endDateTextBox_ah_fin.val() != '') {
                startDateTextBox_ah_ini.datetimepicker('setDate', document.getElementById("fecha_i").value);
                endDateTextBox_ah_fin.datetimepicker('setDate', document.getElementById("fecha_f").value);
                
                var testStartDate = startDateTextBox_ah_ini.datetimepicker('getDate');
                var testEndDate = endDateTextBox_ah_fin.datetimepicker('getDate');
                if (testStartDate > testEndDate)
                    endDateTextBox_ah_fin.datetimepicker('setDate', testStartDate);
            }
            else {
                
            //startDateTextBox_ah_ini.val(dateText);
            }
        },
        onSelect: function (){
            endDateTextBox_ah_fin.datetimepicker('option', 'minDate', document.getElementById("fecha_i").value);
        }
    });
  
    $("#fecha_f").datetimepicker({
        changeYear: true,
        changeMonth: true,
        numberOfMonths: 1,
        dateFormat: 'dd/mm/yy',
        showButtonPanel: true,
        addSliderAccess: true,
        sliderAccessArgs: {
            touchonly: false
        },
        
        onClose:function(dateText, inst) {
            if (startDateTextBox_ah_ini.val() != '') {
                startDateTextBox_ah_ini.datetimepicker('setDate', document.getElementById("fecha_i").value);
                endDateTextBox_ah_fin.datetimepicker('setDate', document.getElementById("fecha_f").value);
                
                var testStartDate = startDateTextBox_ah_ini.datetimepicker('getDate');
                var testEndDate = endDateTextBox_ah_fin.datetimepicker('getDate');
                if (testStartDate > testEndDate)
                    endDateTextBox_ah_fin.datetimepicker('setDate', testStartDate);
            }
            else {
                
            //startDateTextBox_ah_ini.val(dateText);
            }
        },
        onSelect: function (){
        //startDateTextBox_ah_ini.datetimepicker('option', 'maxDate', document.getElementById("fecsalah").value, 'minDate',endDateTextBox_ah_fin.datetimepicker('option', 'minDate', document.getElementById("fecingah").value));
        }
    });

    var date = new Date();
    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();


    //$("#calendario").datepicker({numberOfMonths: 3,minDate: new Date(y, m, d),dateFormat: 'dd/mm/yy'});


 
    $("#buscarCod").keyup(function(){
        $("#buscarDes").val("");
        $("#buscarDes1").val("");
    });
    
    $("#buscarDes").keyup(function(){
        $("#buscarCod").val("");        
    });
    
    $("#buscarDes1").keyup(function(){
        $("#buscarCod").val("");        
    });
    
    $("#buscarCod").keypress(function(ev){
        if(ev.keyCode==13){       
            buscar_paciente()
        }
    })
        
    $("#buscarDes").keypress(function(ev){
        if(ev.keyCode==13){       
            buscar_paciente()
        }
    })
    $("#buscarDes1").keypress(function(ev){
        if(ev.keyCode==13){       
            buscar_paciente()
        }
    })
        
        
    /*AYUDA*/
    $('#ayudaBtn').qtip({
        content: '<b style="color:red">*</b> Para asignar una cita, haga doble click sobre el paciente seleccionado<br /><b style="color:red">*</b> Para buscar un paciente utilice los campos del pie de cada columna',
        show: 'mouseover',
        hide: 'mouseout',
        style: {
            name: 'cream', 
            border: {
                width: 3,
                radius: 8                                         
            },
            width: 200,
            tip: { // Now an object instead of a string
                corner: 'topRight', // We declare our corner within the object using the corner sub-option
                color: 'orange',
                size: {
                    x: 20, // Be careful that the x and y values refer to coordinates on screen, not height or width.
                    y : 8 // Depending on which corner your tooltip is at, x and y could mean either height or width!
                }
            }
        },
        position: {
            corner: {
                target: 'bottomLeft',
                tooltip: 'topRight'
            },
            container: $('div.tooltips')                          
        }
    })
       
        
})


var dates = null;
var datesOk = null;
diasFestivos  = null;

function reconstruirAgenda(){
    dates = traerDiasBase();
    datesOk = traerDiasOk();
    diasFestivos = retornaDiasFestivos();

    var date = new Date();
    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
 
    $('#calendario').datepicker({
        dateFormat: 'mm-dd-yy',
        beforeShowDay: function(date){ 
            var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
            d=d-1;
            var $return=true;
            var $returnclass= "available";
                    
            var band = false;
                    
                    
            for (i = 0; i < dates.length; i++) {
                if($.inArray((m+1) + '-' + d + '-' + y,dates) != -1) {
                    //return [false];                      

                    $returnclass= "unavailable";
                    // $return = false;
                    band = true;
                }
            }
            //return [$return,$returnclass];
                    
                    
                    
            if(!band)
                for (i = 0; i < datesOk.length; i++) {
                    if($.inArray((m+1) + '-' + d + '-' + y,datesOk) != -1) {
                        //return [false];                      

                        $returnclass= "ok";
                    // $return = false;
                    }
                }
                
                
            var finesDeSemana = false;  
            if(finesDeSemana) {
            var noWeekend = $.datepicker.noWeekends(date, diasFestivos);
            noWeekend[2] = 'No se permite el ingreso de dia de fin de semana';
            return noWeekend[0] ? festivo(date) : noWeekend;
           }
           else return festivo(date);    
                            
           // return [$return,$returnclass];
        }
        ,
        numberOfMonths: 2,
        onSelect: consultarTurnosInasistentes,
        minDate : new Date(y,m,d)
               
    });
}
//para los festivos/
function retornaDiasFestivos(){
    $.ajax({
        type: "POST",
        url: "/salus/UtilServlet",
        data: "op=2",
        dataType: 'json',
        async :false,
        success: function(msg){
            diasfes = msg;
        }
    });
    return diasfes;
    
    
}

/*var  
diasFestivos  = null;
diasFestivos = retornaDiasFestivos();

function noFinesDeSemanaNiFestivos(date) {
    var finesDeSemana = false;  
    if(finesDeSemana) {
        var noWeekend = $.datepicker.noWeekends(date, diasFestivos);
        noWeekend[2] = 'No se permite el ingreso de dia de fin de semana';
        return noWeekend[0] ? festivo(date) : noWeekend;
    }
    else return festivo(date);
}*/

function festivo(date) {
  
   
    //diasFestivos  = retornaDiasFestivos(); 
    //Se toma cada dato de la fecha, ya que el mes viene de 0 a 11, se le suma 1
    var m = date.getMonth() + 1, d = date.getDate(), y = date.getFullYear();
 
    //Si el mes es menor a 10 se concatena un 0 antes para que de el formato
    //if(m < 10)
    //m = '0' + m; 
    //Si el día es menor a 10 se concatena un 0 antes para que de el formato
    //if(d < 10)
    //d = '0' + d; 
    for (i = 0; i < diasFestivos.length; i++) {
        if($.inArray(d + '/' + m + '/' + y, diasFestivos) != -1) {
            return [false, "festivos", 'No se permite el ingreso de dias festivos'];
        }
    }
    return [true, ''];
}

//fin festivos


function diasProgramados(date){

    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();

    var $return=true;
    var $returnclass= "available";

    for (i = 0; i < dates.length; i++) {
        if($.inArray((m+1) + '-' + d + '-' + y,dates) != -1) {
            //return [false];                      

            $returnclass= "unavailable";
        // $return = false;
        }
    }
    return [$return,$returnclass];
//return dates;
}


function traerDiasBase(){

    var sede = $("#id_sede").val();

    var medico = $("#id_medico").val();
    var op = 2;

    $.ajax({
        type:'POST',
        url:'/salus/CitasServlet',
        data:"op="+op+"&medico="+medico+"&sede="+sede,
        dataType: 'json',
        async:false,
        success:function(data) {
            fechas = data
        }
    });

    return fechas;
}


function traerDiasOk(){
    var sede = $("#id_sede").val();
    var medico = $("#id_medico").val();
    var op = 6;

    $.ajax({
        type:'POST',
        url:'/salus/CitasServlet',
        data:"op="+op+"&medico="+medico+"&sede="+sede,
        dataType: 'json',
        async:false,
        success:function(data) {
            fechas = data
        }
    });

    return fechas;
}


function mostrar_medicos(){
    
    $("#id_medico").load("/salus/AdministrarServlet", {
        op:"-17",
        id_especialidad:$("#id_especialidad").val()
        }).change(reconstruirAgenda);
}


/*gestiona la busqueda de datos en la grilla, por codigo y descripcion*/
function buscar_paciente(){
    
    var op = 1;

    if($("#buscarCod").val()==""&&$("#buscarDes").val()==""&&$("#buscarDes1").val()==""){
        window.location.reload();
    }else{ho

        $.ajax({
            type:'POST',
            url:'/salus/CitasServlet',
            data:"op="+op+"&cod="+$("#buscarCod").val()+"&des="+$("#buscarDes").val()+"&des1="+$("#buscarDes1").val(),
            success:function(data) {
                $("#lista-pacientes").html(data);
            }
        });

    }
}



/*Muestra el dialogo para capturar los datos de la tabla*/
/*
function formularioCita(){
    $("#citas-form").dialog({
			height: 700,
                        width: 900,
			modal: true,
                        title:"Asignar Citas",
			buttons:{
                            "Salir":function(){
                                $(this).dialog("close")
                            }
                        }
        		});
                        
   $("#citas-form").load('citas_detalle.xhtml',function(){});  
}
*/


function asignarCita(id,nombre,fecnac,iden){
   
    $("#citas-form").dialog({
        height: 700,
        width: 900,
        modal: true,
        title:"Asignar Citas",
        buttons:{
            "Salir":function(){
                $(this).dialog("close")
            }
        }
    });
  
    $("#citas-form").load('citas_detalle.xhtml',function(){
        /*$("#idfactura_rips").val(idfactura);mostrarActividadesRips(idfactura)*/
        $("#id_paciente").val(id);
        $("#identificacion").text(iden);
        $("#nombre").text(nombre);
        $("#fecnac").text(fecnac);
    });   
}


function agendaMedico(){
   
    $("#citas-form").dialog({
        height: 700,
        width: 900,
        modal: true,
        title:"Agenda del Medico",
        buttons:{
            "Salir":function(){
                $(this).dialog("close")
            }
        }
    });
  
    $("#citas-form").load('agenda_medico.xhtml',function(){       
        });   
}

function guardarCita(){
    
}

function consultarTurnoVigentePaciente(){

    $fecha = $("#calendario").datepicker( "getDate" );
    //var $fecha = $( "#calendario" ).datepicker( "option", "altFormat" );
    var op = 10;
    var medico = $("#id_medico").val();
    var sede = $("#id_sede").val();
    var paciente =  $("#id_paciente").val();
    


    if($fecha!=null){
        var $mes = parseInt($fecha.getMonth())+1;
        var $fecha_turno = $fecha.getFullYear()+'-'+$mes+'-'+$fecha.getDate();

        $.ajax({
            type:'POST',
            url:'/salus/CitasServlet',
            data:"op="+op+"&medico="+medico+"&fecha_turno="+$fecha_turno+"&sede="+sede+"&paciente="+paciente,
            dataType: 'text',
            async:false,
            success:function(data) {                            
                $("#lista-turnos").html(data);
                $("#tmpfecha").html(" ["+$fecha_turno+"]");
            }
        })
        
    } 

}

function consultarTurnoVigentePacienteInd(){

    $fecha = $("#calendario").datepicker( "getDate" );
    //var $fecha = $( "#calendario" ).datepicker( "option", "altFormat" );
    var op = 11;
    var medico = $("#id_medico").val();
    var sede = $("#id_sede").val();
    var paciente =  $("#id_paciente").val();
    var rt=0;


    if($fecha!=null){
        var $mes = parseInt($fecha.getMonth())+1;
        var $fecha_turno = $fecha.getFullYear()+'-'+$mes+'-'+$fecha.getDate();

        $.ajax({
            type:'POST',
            url:'/salus/CitasServlet',
            data:"op="+op+"&medico="+medico+"&fecha_turno="+$fecha_turno+"&sede="+sede+"&paciente="+paciente,
            dataType: 'text',
            async:false,
            success:function(msg) {                            
                 if(parseInt(msg)!=0){
                     rt=msg;
                 }
            }
        })
        
    } 
return rt;
}


function consultarTurnosInasistentes(){

    $fecha = $("#calendario").datepicker( "getDate" );
    //var $fecha = $( "#calendario" ).datepicker( "option", "altFormat" );
    var op = 12;
    var medico = $("#id_medico").val();
    var sede = $("#id_sede").val();

    if($fecha!=null){
        var $mes = parseInt($fecha.getMonth())+1;
        var $fecha_turno = $fecha.getFullYear()+'-'+$mes+'-'+$fecha.getDate();

        $.ajax({
            type:'POST',
            url:'/salus/CitasServlet',
            data:"op="+op+"&medico="+medico+"&fecha_turno="+$fecha_turno+"&sede="+sede,
            dataType: 'text',
            async:false,
            success:function(data) {                            
                $("#lista-turnos").html(data);
                $("#tmpfecha").html(" ["+$fecha_turno+"]");
            }
        })
        
    } 

}




function consultarTurnos(){

    $fecha = $("#calendario").datepicker( "getDate" );
    //var $fecha = $( "#calendario" ).datepicker( "option", "altFormat" );
    var op = 9;
    var medico = $("#id_medico").val();
    var sede = $("#id_sede").val();

    if($fecha!=null){
        var $mes = parseInt($fecha.getMonth())+1;
        var $fecha_turno = $fecha.getFullYear()+'-'+$mes+'-'+$fecha.getDate();

        $.ajax({
            type:'POST',
            url:'/salus/CitasServlet',
            data:"op="+op+"&medico="+medico+"&fecha_turno="+$fecha_turno+"&sede="+sede,
            dataType: 'text',
            async:false,
            success:function(data) {                            
                $("#lista-turnos").html(data);
                $("#tmpfecha").html(" ["+$fecha_turno+"]");
            }
        })
        
    } 

}


function consultarTurnosParaBloquear(){

    $fecha = $("#calendario").datepicker( "getDate" );
    //var $fecha = $( "#calendario" ).datepicker( "option", "altFormat" );
    var op = 14;
    var medico = $("#id_medico").val();
    var sede   = $("#id_sede").val();
    
    
    var fecturnoi  = document.getElementById("fecha_i").value;
    var fecturnof  = document.getElementById("fecha_f").value;
    
    

    if($fecha!=null){
        //var $mes = parseInt($fecha.getMonth())+1;
        //var $fecha_turno = $fecha.getFullYear()+'-'+$mes+'-'+$fecha.getDate();

        $.ajax({
            type:'POST',
            url:'/salus/CitasServlet',
            data:"op="+op+"&medico="+medico+"&fecturnoi="+fecturnoi+"&fecturnof="+fecturnof+"&sede="+sede,
            dataType: 'text',
            async:false,
            success:function(data) {                            
                $("#lista-turnos").html(data);
                $("#tmpfecha").html(" ["+fecturnoi+ "--" +fecturnof+"]");
            }
        })
        
    } 

}



function crearCita(id, estado){
    if(estado=='VIGENTE')
    {
        alert('El turno seleccionado, ya se encuentra asignado...')
    }else{
        nuevaCita(id);
    }
}

function nuevaCita(turno){

    var op = 4;
    var paciente = $("#id_paciente").val();
    var medico = $("#id_medico").val();
    
    if (parseInt(consultarTurnoVigentePacienteInd())!=1){       
    

    if(confirm('Seguro de asignar la cita al paciente seleccionado?')){
        
        $.ajax({
            type:'POST',
            url:'/salus/CitasServlet',
            data:"op="+op+"&medico="+medico+"&paciente="+paciente+"&turno="+turno,
            dataType: 'text',
            async:false,
            success:function(data) {
                consultarTurnoVigentePaciente();
            }
        })
    }
    }else{
        alert("El usuario tiene turno separado vigente  con el medico actual")
    }

}


function validarCita(paciente){

}


function anularCita(turno){
    var op = 5;
    if(confirm('Seguro de anular el turno seleccionado?')){

        $.ajax({
            type:'POST',
            url:'/salus/CitasServlet',
            data:"op="+op+"&turno="+turno,
            dataType: 'text',
            async:false,
            success:function(data) {
                consultarTurnoVigentePaciente();
            }
        })

    }
   
}

function marcarAsistenciaCita(turno){
    
    var op = 13;

    if(confirm('Seguro de marcar como asistente?')){

        $.ajax({
            type:'POST',
            url:'/salus/CitasServlet',
            data:"op="+op+"&turno="+turno,
            dataType: 'text',
            async:false,
            success:function(data) {
                consultarTurnosInasistentes();
            }
        })

    }
   
}


function BloquearTurnoGrupo(){
    var op = 15;
    var medico = $("#id_medico").val();
    var sede   = $("#id_sede").val();
    var fecturnoi  = document.getElementById("fecha_i").value;
    var fecturnof  = document.getElementById("fecha_f").value;

    if(confirm('Seguro de Bloquear todos los turnos?')){
        $.ajax({
            type:'POST',
            url:'/salus/CitasServlet',
            data:"op="+op+"&medico="+medico+"&fecturnoi="+fecturnoi+"&fecturnof="+fecturnof+"&sede="+sede,
            dataType: 'text',
            async:false,
            success:function(data) {
                if(parseInt(data)>0){
                    alert("Turnos bloqueados correctamente")
                } 
            }
        })

    }
   
}


function BloquearTurnoIndividual(turno){
    var op = 16;

if(confirm('Seguro de Bloquear el turno seleccionado?')){
        $.ajax({
            type:'POST',
            url:'/salus/CitasServlet',
            data:"op="+op+"&turno="+turno,
            dataType: 'text',
            async:false,
            success:function(data) {
                if(parseInt(data)>0){
                    alert("Turno bloqueado correctamente")
                } 
            }
        })

    }
   
}


function desBloquearTurnoIndividual(turno){
    var op = 17;

if(confirm('Seguro que desea debloquear el turno seleccionado?')){
        $.ajax({
            type:'POST',
            url:'/salus/CitasServlet',
            data:"op="+op+"&turno="+turno,
            dataType: 'text',
            async:false,
            success:function(data) {
                if(parseInt(data)>0){
                    alert("Turno desbloqueado correctamente")
                } 
            }
        })

    }
   
}





function imprimirCita(id){
    //window.close();
    //window.location.reload()
    pop('/salus/ImprimirCita?idcita='+id,'ComprobanteCita','top=0 ,left=0 ,width=500, height=400, scrollbars=yes, menubar=no, location=no, resizable=no');

}



function pop(pagina,ventana,parametros){
    window.open(pagina,ventana,parametros);
}


function facturarCita(){
    alert('facturacion')
}